package com.samehope.ar.service;

import com.samehope.ar.dto.*;
import com.samehope.ar.entity.Problem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.samehope.ar.vo.PaginationDataVO;
import com.samehope.ar.vo.ProblemDetailVO;
import com.samehope.ar.vo.ProblemTableVO;

/**
 * <p>
 * 问题 服务类
 * </p>
 *
 * @author Zhang Luo
 * @since 2019-12-23
 */
public interface IProblemService extends IService<Problem> {

    /**
     * 删除问题单
     * @param problemId
     */
    void deleteProblem(Long problemId);

    /**
     * 新增问题单
     * @param param
     */
    void add(ProblemAddParam param);

    /**
     * 更新问题单
     * @param param
     */
    void update(ProblemUpdateParam param);

    /**
     * 问题单详情
     * @param problemId
     * @return
     */
    ProblemDetailVO detail(Long problemId);

    /**
     * 回复问题单
     * @param param
     */
    void reply(ReplyParam param);

    /**
     * 分配问题
     * @param param
     */
    void allot(ProblemAllotParam param);

    /**
     * 分页查询问题清单
     * @param paginationParam
     * @param problemQueryParam
     * @return
     */
    PaginationDataVO<ProblemTableVO> problems(PaginationParam paginationParam, ProblemQueryParam problemQueryParam);
}
